package com.haoze.nurseapp.dao;

import com.haoze.common.mapper.MyMapper;
import com.haoze.common.model.OrdersFileIndexDataEntity;
import com.haoze.common.model.OrdersFileIndexEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface OrdersFileIndexMapper extends MyMapper<OrdersFileIndexEntity> {

    String getEmrType(@Param("emrFileId") String emrFileId);

    String getPrintType(@Param("emrFileId") String emrFileId);
    /**
     * 查询当前用户
     *
     * @param userId
     * @return
     */
    Map<String, String> getUser(@Param("userId") String userId);
    /**
     * 查询病人所有病历涉及的模板的自引用关系
     * @param inpatNum
     * @param tplId
     * @return
     */
    List<Map<String, String>> queryAllObservations(@Param("inpatNum") String inpatNum, @Param("tplId") String tplId);

    List<Map<String, Object>> getAllFileIndexDataEntity(@Param("emrFileId") String emrFileId, @Param("parentFileIndexDataId") String parentFileIndexDataId,@Param("indexFlag") String indexFlag);
    /**
     * 查询护理子节点
     * @param emrFileId
     * @param parentFileIndexDataId
     * @return
     */
    List<Map<String, Object>> getAllNurseDataEntity(@Param("emrFileId")String emrFileId,@Param("parentFileIndexDataId") String parentFileIndexDataId);

    List<Map<String, Object>> getAllSelections(@Param("elementId") String elementId);

    String getGroupNameByUserId(@Param("userId") String userId);
    /**
     * 获取病人基本信息
     *
     * @param inpatNum 住院号
     * @return
     */
    Map<String, String> getPatientInfo(@Param("inpatNum") String inpatNum);
    /**
     * 查询用户等级
     *
     * @param userId
     * @return
     */
    Integer queryLevel(@Param("userId") String userId);

    /**
     * 查询用户职务等级
     */
    Integer getPositionLevel(@Param("userId") String userId);
    /**
     * 2.1版本使用
     * 获取模板引用的数据集服务接口地址
     * @param tplId
     * @return
     */
    List<Map<String, String>> getDatasetListNew(@Param("tplId") String tplId);
    List<OrdersFileIndexDataEntity> queryRefData(@Param("quoteId") String quoteId, @Param("emrType") String emrType, @Param("inpatNum") String inpatNum, @Param("quoteAll") String quoteAll, @Param("isDesc") String isDesc);
    List<String> getSignElementIds();
    /**
     * 更新前记录
     *
     * @param emrFileId
     */
    void recordBeforeUpdate(@Param("emrFileId") String emrFileId);
    /**
     * 查询系统用户
     *
     * @param loginName
     * @return
     */
    Map<String, String> getSysUser(@Param("loginName") String loginName);

    int getFileCnt(@Param("inpatNum") String inpatNum, @Param("tplId") String tplId);

    List<Map<String, Object>> createEmrFileData(@Param("emrFileIndex") OrdersFileIndexEntity emrFileIndex);

    List<OrdersFileIndexDataEntity> queryRefLastOrderData(@Param("quoteId") String quoteId, @Param("ctlId") String ctlId, @Param("inpatNum") String inpatNum);
    List<OrdersFileIndexDataEntity> queryRefDataByCtlId(@Param("quoteId") String quoteId, @Param("ctlId") String ctlId, @Param("inpatNum") String inpatNum, @Param("quoteAll") String quoteAll, @Param("isDesc") String isDesc);
    List<OrdersFileIndexDataEntity> queryRefDataByEmrFileId(@Param("emrFileId") String emrFileId,@Param("elementId") String elementId);

    List<Map<String, String>> getSpeedUnit();
}
